第八章笔记

(1) window对象以及窗口框架

由于 window 对象同时扮演着 ECMAScript 中 Global 对象的角色,因此所有在全局作用域中声明
的变量、函数都会变成 window 对象的属性和方法。

(2) 窗口位置相对于top的位置

var leftPos=(typeof window.screenLeft=='number')?
     window.screenLeft:window.screenX;
     alert(leftPos);

(3)检查弹出窗口是否被屏蔽了

如果浏览器扩展或者其他程序阻止弹出窗口的话。我们用try catch来判断

var blocked = false;
try {
    var wrpxWin = window.open("http://www.wrox.com", "_blank"); if (wrpxWin == null) {
        blocked = true;//窗口被屏蔽了
    }
} catch (ex) {
    blocked = true;
}

if (blocked) {
    alert("the popupp was bolcked!");
}

(4) 对话框

  • alert
  • confirm
  • prompt

重点是第三种,让你输入一个对话框,并要求你输入数据。

 var result = prompt("what is you name?", "");
 if (result != null) {
    alert("Welcome," + result);
}

(5) location对象

location 是最有用的 BOM 对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一
些导航功能。事实上,location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是
document 对象的属性;换句话说,window.location 和 document.location 引用的是同一个对象。
location 对象的用处不只表现在它保存着当前文档的信息,还表现在它将 URL 解析为独立的片段,让
开发人员可以通过不同的属性访问这些片段。

(6) navigator对象 检测插件

function hasPlugin(name) {
    name = name.toLowerCase();
    for (var i = 0; i < navigator.plugins.length; i++) {
        if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {
            return true;
        }
        return false;
    }
}
alert(hasPlugin("Flash"));//检查是否有Flash插件

(6) history对象

浏览器内置对象,可以用它模仿前一个界面,后一个界面操作。

(7) 小结

   浏览器对象模型(BOM)以 window 对象为依托,表示浏览器窗口以及页面可见区域。同时,window
对象还是 ECMAScript 中的 Global 对象,因而所有全局变量和函数都是它的属性,且所有原生的构造
函数及其他函数也都存在于它的命名空间下。本章讨论了下列 BOM 的组成部分。
1 在使用框架时,每个框架都有自己的 window 对象以及所有原生构造函数及其他函数的副本。
每个框架都保存在 frames 集合中,可以通过位置或通过名称来访问。
2 有一些窗口指针,可以用来引用其他框架,包括父框架。
3 top 对象始终指向最外围的框架,也就是整个浏览器窗口。
4 parent 对象表示包含当前框架的框架,而 self 对象则回指 window。
5 使用 location 对象可以通过编程方式来访问浏览器的导航系统。设置相应的属性,可以逐段
或整体性地修改浏览器的 URL。
6 调用 replace()方法可以导航到一个新 URL,同时该 URL 会替换浏览器历史记录中当前显示
的页面。
7 *navigator 对象提供了与浏览器有关的信息。到底提供哪些信息,很大程度上取决于用户的浏
览器;不过,也有一些公共的属性(如 userAgent)存在于所有浏览器中。
BOM 中还有两个对象:screen 和 history,但它们的功能有限。screen 对象中保存着与客户端
显示器有关的信息,这些信息一般只用于站点分析。history 对象为访问浏览器的历史记录开了一个
小缝隙,开发人员可以据此判断历史记录的数量,也可以在历史记录中向后或向前导航到任意页面。*
鲍志强 wechat
欢迎你扫一扫上面的微信公众号,订阅我的博客!
你的点赞是为了你的未来